package com.ruoyi.qywx.getway.api;

import com.ruoyi.common.core.cache.Meta;
import com.ruoyi.common.utils.StrUtils;
import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.qywx.enums.QywxMediaEm;
import com.ruoyi.qywx.getway.request.TxRequest;
import com.ruoyi.qywx.getway.request.TxResponse;
import lombok.extern.slf4j.Slf4j;

/**
 * @author : hcl
 * @Date : 2023/8/22 10:01
 * 素材api
 */
@Slf4j
public class QyMediaApi {
    /**
     * @param media 文件类型
     * @param name  文件名称
     * @param url   文件链接
     */
    protected static String mediaUpload(Meta meta, QywxMediaEm media, String name, String url) {
        byte[] file = FileUtils.findFile(url);
        if (file == null || file.length == 0) {
            log.error("获取需要上传的临时文件失败:{}", url);
            return StrUtils.EMPTY;
        }
        TxResponse response = TxRequest.getInstance(meta.getCorpid(), meta.getAppSecret())
                .uploadFile("/cgi-bin/media/upload", media.getType(), name, file);
        if (!response.isSuccess()) {
            log.error("上传临时文件失败,素材文件:{} , 异常信息：{}", url, response.getError());
            return StrUtils.EMPTY;
        }
        return response.getJson().getStr("media_id");

    }
}
